#pragma once

#include "GraphicOGL.h"
#include "DrawableOGL.h"

#include "GraphicFactory.h"
namespace OGLs
{
	class GraphicFactoryOGL: public Graphics::GraphicFactory
	{
	private:
		//Static buffer
		GraphicOGL* m_GraphicOGL;
		
	public:
		GraphicFactoryOGL(Window& win);
		~GraphicFactoryOGL(void);

		virtual Graphics::Graphic2D * const GetGraphic2D();
		// Create or get a Drawable object from cache
		virtual Drawable* CreateDrawable(int width, int height);
		virtual Drawable* CreateDrawable(const std::string& filename,DWORD colorKey = 0);

	};
}